home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / ms_dos / thbgm / snfform.txt next >
Text File  |  1993-11-30  |  3KB  |  91 lines

  1.  
  2.  
  3.  
  4.             SNFフォーマット V1.0
  5.  
  6.  
  7.  
  8. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  9.  
  10. 0x00-0xff    SNFヘッダ
  11. 0x100-        データ
  12.  
  13. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  14.  
  15.     ヘッダ情報(256バイト)
  16.  
  17.  
  18. 0x00-0x03    識別子("SNF\0")
  19. 0x04        バージョンナンバー上位
  20. 0x05        バージョンナンバー下位
  21. 0x06-0x07    予約域(誰が予約しているんでしょうか?)
  22. 0x08-0x39    タイトル名(半角で56文字)
  23.  
  24. 0x40-0x49    FM音源ファイル名(ASCIIZで16文字まで)
  25. 0x50-0x59    PCM音源ファイル名(同上。未サポート)
  26. 0x60-0x79    作成アプリ名
  27.  
  28. 0x80-0xb9    各パートのデータサイズ。各パートごとにデータ管理を行っているの
  29.         で、それを4バイト(符号付)で羅列する。残りは0で埋めておいた         方が確実。
  30.  
  31. 0xc0-0xff    予約域
  32.  
  33. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  34.  
  35. ○データ域
  36.  
  37.  以降は、データの固まりとなる。パート毎の区切りは、ヘッダ情報の「各パートのデータサイズ」によって決定することになる。それによって各パートの演奏データの開始場所が分かる。
  38.  
  39. ○演奏ソフト情報
  40.  
  41.  以下は、演奏ソフトが情報を持つことになる。
  42.  
  43.     ボリューム
  44.     ピッチ
  45.     パンポッド
  46.     コントロール(音色)
  47.     テンポ
  48.  
  49.  特にボリュームは、BIOSなどでキーONする時に必要。
  50.  これらのデフォルト値についての規定は無いが、省略されてもまともに演奏できるく らいの配慮は必要。
  51.  
  52. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  53.  
  54.     演奏データ
  55.  
  56. 0x00        データの終了
  57. 0xff        データのループ指定
  58.         どちらかがパートの最後にこなくてはならない。演奏ソフトはパート         のデータサイズで最後だと判断する必要はない。
  59.  
  60. 0x01-0x7f    音程(1~127)
  61.         次に長さが2バイトで表される。ゲートタイムなどはMMLコンパイ         ラに委ねられるから、一つの音譜は大抵は休符とセットになる。
  62.  
  63. 0x80        休符
  64.         次に長さが1ワードで表される。
  65.  
  66. 0x90        テンポ変更
  67.         次に値を1バイトで決める。
  68.         この時、0~255は30~285になる。つまり30引いた値。
  69.  
  70. 0xa0        コントロールチェンジ
  71.         次に値を1バイト(実は7ビット)で決める。
  72.         この時、0~127が1~128になる。
  73.  
  74. 0xb0        ボリューム変更
  75.         次の値を1バイト(実は7ビット)で決める。
  76.         この時、ボリューム0は認められない。
  77.  
  78. 0xc0        ピッチの変更
  79.         次の値を符号付2バイトで決めるが、実質は前後八千くらい。
  80.  
  81. 0xd0        パンポッド変更
  82.         次の値を1バイト(実は符号付7ビット)で決める。
  83.  
  84. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  85.  
  86.  V1.1が出来るとすれば、PCMについても考慮される。
  87.  ゲートタイムを内部情報として持てば、データは大幅に削減されるので、それも予定 している。
  88.  
  89.  
  90.  
  91.